<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
</head>
<body>
    <script >
     /*
     Map
     ES6 提供了Map数据结构。它类似于对象，也是键值对的集合。
     但是“键”的返回不限于字符串，各种类型的值（包括对象）都可以当做键
     。Map 也实现了iterator 接口。所以可以使用扩展运算符，和 for of 进行遍历
     
     - size 返回Map的元素个数
     - set 增加一个新元素，返回当前Map
     - get 返回键名对象的键值
     - has 检测Map中是否包含某个元素，返回boolean值
     - clear 清空集合， 返回 undefined
     */

     let map = new Map();

     m.set('name','pop');
     m.set('change',function(){

     });

     let key = {
         school:'ss'
     }
     map.set(key,['pop','pipi'])
     // 我们可以看到map键值定义也是不限于字符串的，可以是任意的类型

     map.delete('name');

     map.get('name');

     map.clear();

     for(let v of map){
         console.log(v[0],v[1]);
     }

   </script>
</body>

</html>